package com.librelato.bean;

import java.util.Date;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import com.librelato.negocio.bean.IBeanGenerico;
@ManagedBean
@ViewScoped
public class SolicitacaoBean implements IBeanGenerico {
	
	private static final long serialVersionUID = -8289963339434123276L;

	private String idSol;
	
	private Date dataEmissao;
	
	private Date dataAprovacao;
	
	private UnidadeRequisicaoBean unidadeRequisi;
	
	private CompradorBean comprador;
	
	private List<ProdutoBean> itensSolicitacao;
	
	private UsuarioBean usuario;
	
	private String filial;
	
	private String numSolicitacao;
	
	private String item;
	
	private String status;
	
	private PedidoBean pedido;
	
	private String horaSolicitacao;
	
	private List<HistoricoBean> historicos;
	
	
	public Date getDataEmissao() {
		return dataEmissao;
	}

	public void setDataEmissao(Date dataEmissao) {
		this.dataEmissao = dataEmissao;
	}

	public UnidadeRequisicaoBean getUnidadeRequisi() {
		return unidadeRequisi;
	}

	public void setUnidadeRequisi(UnidadeRequisicaoBean unidadeRequisi) {
		this.unidadeRequisi = unidadeRequisi;
	}

	public CompradorBean getComprador() {
		return comprador;
	}

	public void setComprador(CompradorBean comprador) {
		this.comprador = comprador;
	}

	public List<ProdutoBean> getItensSolicitacao() {
		return itensSolicitacao;
	}

	public void setItensSolicitacao(List<ProdutoBean> itensSolicitacao) {
		this.itensSolicitacao = itensSolicitacao;
	}

	public UsuarioBean getUsuario() {
		return usuario;
	}

	public void setUsuario(UsuarioBean usuario) {
		this.usuario = usuario;
	}

	public static long getSerialversionuid() {
		return serialVersionUID;
	}
	
	public Date getDataAprovacao() {
		return dataAprovacao;
	}
	
	public void setDataAprovacao(Date dataAprovacao) {
		this.dataAprovacao = dataAprovacao;
	}
	
	public String getFilial() {
		return filial;
	}
	
	public void setFilial(String filial) {
		this.filial = filial;
	}
	
	public String getNumSolicitacao() {
		return numSolicitacao;
	}
	
	public void setNumSolicitacao(String numSolicitacao) {
		this.numSolicitacao = numSolicitacao;
	}
	
	public String getStatus() {
		return status;
	}
	
	public void setStatus(String status) {
		this.status = status;
	}
	
	public String getItem() {
		return item;
	}
	
	public void setItem(String item) {
		this.item = item;
	}
	
	public PedidoBean getPedido() {
		return pedido;
	}
	
	public void setPedido(PedidoBean pedido) {
		this.pedido = pedido;
	}
	
	public String getIdSol() {
		idSol = filial + numSolicitacao + item;
		return idSol;
	}
	
	public void setIdSol(String idSol) {
		this.idSol = idSol;
	}
	
	public String getHoraSolicitacao() {
		return horaSolicitacao;
	}

	public void setHoraSolicitacao(String horaSolicitacao) {
		this.horaSolicitacao = horaSolicitacao;
	}
	
	public List<HistoricoBean> getHistoricos() {
		return historicos;
	}

	public void setHistoricos(List<HistoricoBean> historicos) {
		this.historicos = historicos;
	}
	

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((dataAprovacao == null) ? 0 : dataAprovacao.hashCode());
		result = prime * result
				+ ((dataEmissao == null) ? 0 : dataEmissao.hashCode());
		result = prime * result + ((filial == null) ? 0 : filial.hashCode());
		result = prime * result + ((item == null) ? 0 : item.hashCode());
		result = prime
				* result
				+ ((itensSolicitacao == null) ? 0 : itensSolicitacao.hashCode());
		result = prime * result
				+ ((numSolicitacao == null) ? 0 : numSolicitacao.hashCode());
		result = prime * result + ((status == null) ? 0 : status.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		SolicitacaoBean other = (SolicitacaoBean) obj;
		if (dataAprovacao == null) {
			if (other.dataAprovacao != null)
				return false;
		} else if (!dataAprovacao.equals(other.dataAprovacao))
			return false;
		if (dataEmissao == null) {
			if (other.dataEmissao != null)
				return false;
		} else if (!dataEmissao.equals(other.dataEmissao))
			return false;
		if (filial == null) {
			if (other.filial != null)
				return false;
		} else if (!filial.equals(other.filial))
			return false;
		if (item == null) {
			if (other.item != null)
				return false;
		} else if (!item.equals(other.item))
			return false;
		if (itensSolicitacao == null) {
			if (other.itensSolicitacao != null)
				return false;
		} else if (!itensSolicitacao.equals(other.itensSolicitacao))
			return false;
		if (numSolicitacao == null) {
			if (other.numSolicitacao != null)
				return false;
		} else if (!numSolicitacao.equals(other.numSolicitacao))
			return false;
		if (status == null) {
			if (other.status != null)
				return false;
		} else if (!status.equals(other.status))
			return false;
		return true;
	}
	
	
	

}
